View Javadoc

1   /**
2    * Copyright 2008 WebPhotos
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package net.sf.webphotos.gui;
17  
18  import javax.swing.*;
19  import net.sf.webphotos.action.AcaoPopup;
20  import net.sf.webphotos.util.Util;
21  
22  /**
23   * Cria um menu popup com os dados do albúm.
24   * Monta a parte gráfica e puxa as ações da classe {@link net.sf.webphotos.gui.AcaoPopMenu AcaoPopMenu}.
25   * Possui utilizações nas classes PopupMenuTest em pacotes de teste e PainelPesquisa em pacotes de código-fonte.
26   */
27  public class PopupMenu extends JPopupMenu {
28      private String preSQL="select albumID as ID, categorias.nmcategoria as Categoria, nmalbum as Pauta, DATE_FORMAT(DtInsercao, '%d/%m/%y') as Data from albuns left join categorias using(categoriaID) ";
29  
30      /**
31       * Construtor da classe.
32       * Cria os itens do menu e envia o evento para a classe AcaoPopMenu que se encarregará de gerar o menu.
33       */
34      public PopupMenu() {
35          String posSQL;
36          int ct=1;
37  
38          while((posSQL=Util.getConfig().getString("relatorio" + ct++))!=null) {
39              int pos=posSQL.indexOf('/');
40              String nomeComando=posSQL.substring(0,pos).trim();
41              String comando=posSQL.substring(pos+1).trim();
42  
43              JMenuItem menuItem=new JMenuItem(nomeComando, new ImageIcon(getClass().getResource("/icons/pontoazul.gif")));
44  
45              menuItem.addActionListener(new AcaoPopMenu(comando));
46              this.add(menuItem);
47          }
48  
49      }
50  
51      /**
52       * Método principal.
53       * Cria um objeto PopupMenu e um frame para armazenar esse menu.
54       * Seta toda a configuração e chama a classe AcaoPopup para trabalhar o evento de clique do mouse.
55       * @param a args do método main.
56       */
57      public static void main(String[] a) {
58          PopupMenu t=new PopupMenu();
59          JFrame f=new JFrame();
60          f.getContentPane().setLayout(null);
61  
62          JButton bt=new JButton("teste");
63          bt.setBounds(20,20,100,25);
64          bt.addMouseListener(new AcaoPopup((JPopupMenu) t));
65          f.getContentPane().add(bt);
66  
67  
68          f.setSize(200,200);
69          f.getContentPane().add(t);
70          //t.show();
71          f.setVisible(true);
72      }
73  
74      /**
75       * Retorna uma query de SQL.
76       * @return Retorna uma query.
77       */
78      public String getPreSQL() {
79          return preSQL;
80      }
81  
82      /**
83       * Seta uma nova query para a variável preSQL.
84       * @param preSQL Query.
85       */
86      public void setPreSQL(String preSQL) {
87          this.preSQL = preSQL;
88      }
89  
90  }